package Interfaz;

import java.awt.Color;
import java.awt.EventQueue;

import javax.swing.ImageIcon;
import javax.swing.JEditorPane;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class RegistroMascota extends JInternalFrame  // Clase que crea una ventana para agregar una persona
{
        private static RegistroMascota miVentanaRegistroMascota; 
        private JTextField nombreMascota;               //
        private JTextField tipoMascota;           //
        private JTextField chipIdentificacion;          //  Atributos para crear cajas de texto
        private JTextField colorMascota;       //
        private JTextField telefonoPersona;                 //
        private JTextField correoPersona;                   //
        private JTextField lugarEncuentro;       //
        private JTextField fechaEncuentro;                 //
        private JTextField montoRecompensa;     //
        private JTextField raza;          //
        private JTextField estado;   //
        private JComboBox comboBox;// Atributo que crea una caja con opciones (utilizado para escojer si es estudiante, colega o familiar)
        private JPanel panel;   //
        private JPanel panel_1; // Paneles para cambiar la opcion de puesto, parentesco o carne 
        private JPanel panel_2; //
        private JPanel panel_3; //
        
        public static RegistroMascota getInstance()  // Get que llama a la ventana agregar persona
        {
                if(miVentanaRegistroMascota == null)
                {
                        miVentanaRegistroMascota = new RegistroMascota();
                }
                return miVentanaRegistroMascota;
        }
        
        private RegistroMascota() // Define los valores y componentes que va tener la ventana
    	{
    		getContentPane().setBackground(new Color(200, 200, 200)); // Color de la ventana
    		setTitle("Registrar Mascota"); // título de la ventana
    		setFrameIcon(new ImageIcon(RegistroMascota.class.getResource("/Imayarc/Imagenes/logo.png"))); // icono de la ventana
    		setIconifiable(true); // Para minimizar
    		setBounds(140, 130, 550, 300); // Ubicacion y Tamaño de la ventana
    		getContentPane().setLayout(null); //Se usa para establecer el gestor de posicionamiento en un contenedor
    		
    		
    		// Crea un Label que diga Nombre de la Mascota
    		JLabel nombre = new JLabel("Nombre de la Mascota:"); 
    		nombre.setBounds(12, 15, 49, 15);
    		getContentPane().add(nombre); 
    		
    		nombreMascota = new JTextField();
    		nombreMascota.setBounds(66, 11, 100, 20);
    		getContentPane().add(nombreMascota);
    		nombreMascota.setColumns(10);
    		
    		// Crea un Label que diga Tipo de Mascota
    		JLabel tipo = new JLabel("Tipo de Mascota:");
    		tipo.setBounds(10, 70, 105, 15);
    		getContentPane().add(tipo);
    		
    		tipoMascota = new JTextField();
    		tipoMascota.setBounds(105, 66, 105, 20);
    		getContentPane().add(tipoMascota);
    		tipoMascota.setColumns(10);
    		
    		//  Crea un Label que diga Chip de Identificación
    		JLabel chip = new JLabel("Chip de Identificación:");
    		chip.setBounds(10, 125, 105, 15);
    		getContentPane().add(chip);
    		
    		chipIdentificacion = new JTextField();
    		chipIdentificacion.setBounds(110, 125, 111, 20);
    		getContentPane().add(chipIdentificacion);
    		chipIdentificacion.setColumns(10);
    		
    		//  Crea un Label que diga Correo de la Persona
    		JLabel color = new JLabel("Color de la Mascota:");
    		color.setBounds(266, 11, 66, 14);
    		getContentPane().add(color);
    		
    		colorMascota = new JTextField();
    		colorMascota.setBounds(350, 127, 100, 20);
    		getContentPane().add(colorMascota);
    		colorMascota.setColumns(10);
    		
    		//  Crea un Label que diga Telefono de la Persona
    		JLabel telefono = new JLabel("Teléfono:");
    		telefono.setBounds(266, 11, 66, 14);
    		getContentPane().add(telefono);
    		
    		telefonoPersona = new JTextField();
    		telefonoPersona.setBounds(332, 11, 105, 20);
    		getContentPane().add(telefonoPersona);
    		telefonoPersona.setColumns(10);
    		
    		//  Crea un Label que diga el formato del telefono
    		JLabel formatotelefono = new JLabel("Ej:XXXX-XX-XX");
    		formatotelefono.setBounds(332, 30, 99, 14);
    		getContentPane().add(formatotelefono);
    		
    		// Crea un Label que diga Correo de la Persona
    		JLabel correo = new JLabel("Correo:");
    		correo.setBounds(12, 180, 45, 15);
    		getContentPane().add(correo);	
    		
    		correoPersona = new JTextField();
    		correoPersona.setBounds(65, 180, 111, 20);
    		getContentPane().add(correoPersona);
    		correoPersona.setColumns(10);
    		
    		// Crea un Label que diga el formato del Correo
    		JLabel formatocorreo = new JLabel("persona@servicio.com");
    		formatocorreo.setBounds(65, 199, 139, 15);
    		getContentPane().add(formatocorreo);
    		
    		// Crea un Label que diga Lugar donde se encontró la mascota
    		JLabel lugar = new JLabel("Lugar donde se encontró la mascota:");
    		lugar.setBounds(266, 69, 71, 14);
    		getContentPane().add(lugar);
    		
    		lugarEncuentro = new JTextField();
    		lugarEncuentro.setBounds(65, 180, 111, 20);
    		getContentPane().add(lugarEncuentro);
    		lugarEncuentro.setColumns(10);
    		
    		// Crea un Label que diga Fecha donde se encontró la mascota
    		JLabel fecha = new JLabel("Fecha donde se encontró la mascota:");
    		fecha.setBounds(266, 69, 71, 14);
    		getContentPane().add(fecha);
    		
    		fechaEncuentro = new JTextField();
    		fechaEncuentro.setBounds(65, 180, 111, 20);
    		getContentPane().add(fechaEncuentro);
    		fechaEncuentro.setColumns(10);
    		
    		// Crea un Label que diga Monto de Recompensa
    		JLabel monto = new JLabel("Monto de Recompensa:");
    		monto.setBounds(266, 69, 71, 14);
    		getContentPane().add(monto);
    		
    		montoRecompensa = new JTextField();
    		montoRecompensa.setBounds(65, 180, 111, 20);
    		getContentPane().add(montoRecompensa);
    		montoRecompensa.setColumns(10);
    		
    		// Crea un Label que diga Notas
    		JLabel notas = new JLabel("Notas"); // Crea una etiqueta de texto que dice "Notas"
    		JEditorPane PanelNotas = new JEditorPane(); //
    		
    		raza = new JTextField();
    		raza.setBounds(350, 127, 100, 20);
    		getContentPane().add(raza);
    		raza.setColumns(10);
    		
    		// Crea un objeto que va ser una caja con opciones de colega, familiar o estudiante
    		comboBox = new JComboBox(); 
    		comboBox.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) 
    			{
    				cambiarcombobox();
    			}
    		});
    		// Caja para escoger si la persona es colega, familiar o estudiante
    		comboBox.setModel(new DefaultComboBoxModel(new String[] {"Boxer", "Bulldog", "Dálmata",
    		"Chihuahua", "Gran Danés", "Husky Siberiano", "Labrador Retriever", "Pastor Alemán", 
    		"Pit Bull", "Rottweiler", "Schnauzer", "french poodle", "Raza Única"}));
    		comboBox.setMaximumRowCount(3); // Maximo de filas
    		comboBox.setBounds(332, 66, 155, 20); 
    		getContentPane().add(comboBox);
    		
    		// Panel que contiene el label puesto
    		panel = new JPanel();
    		panel.setBackground(new Color(200, 200, 200));
    		panel.setBounds(266, 127, 55, 20);
    		getContentPane().add(panel);
    		panel.setLayout(null);
    		
    		JLabel puesto = new JLabel("Puesto:");
    		puesto.setBounds(0, 0, 49, 15);
    		panel.add(puesto);
    		panel.setVisible(false);
    		
    		// Panel que contiene el label parentesco
    		panel_1 = new JPanel();
    		panel_1.setBackground(new Color(200, 200, 200));
    		panel_1.setBounds(266, 127, 71, 15);
    		getContentPane().add(panel_1);
    		panel_1.setLayout(null);
    		
    		JLabel parentesco = new JLabel("Parentesco:");
    		parentesco.setBounds(0, 0, 71, 15);
    		panel_1.add(parentesco);
    		panel_1.setVisible(false);
    		
    		setVisible(false);
    		comboBox.setSelectedIndex(0);
    
                            
                // Boton aceptar que valida que todo este lleno 
                JButton aceptar = new JButton("Aceptar");
                aceptar.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) 
                        {
                                if(!nombreMascota.getText().isEmpty() && !tipoMascota.getText().isEmpty() &&
                                   chipIdentificacion.getText().isEmpty() && !lugarEncuentro.getText().isEmpty() &&
                                   !colorMascota.getText().isEmpty() && !fechaEncuentro.getText().isEmpty() &&
                                   raza.getText().isEmpty() && !estado.getText().isEmpty() &&
                                   !correoPersona.getText().isEmpty() && !montoRecompensa.getText().isEmpty() &&
                                   telefonoPersona.getText().isEmpty())
                                {
                                        // Mandar esto al arreglo de personas
                                        /*
                                         *  Agrega la persona y discrimina si es colega, familiar o estudiante
                                         *  Luego resetea los valores de las cajas a un espacio blanco.
                                         */
                                        //if(puestoCarneParentesco.getText().compareTo("Colega")==0){
                                                //Generales.agregarColega(new Colega(nombretxt.getText(),primerApellidotxt.getText(),segundoApellidotxt.getText(),telefonotxt.getText(),correotxt.getText(),puestoCarneParentesco.getText()));
                                        ///};
                                        //if(puestoCarneParentesco.getText().compareTo("Familiar")==0){
                                                //Generales.agregarFamiliar(new Familia(nombretxt.getText(),primerApellidotxt.getText(),segundoApellidotxt.getText(), telefonotxt.getText(),correotxt.getText(),puestoCarneParentesco.getText()));
                                        //};
                                        //if(puestoCarneParentesco.getText().compareTo("Estudiante")==0){
                                                //Generales.agregarEstudiante(new Estudiante(nombretxt.getText(),primerApellidotxt.getText(),segundoApellidotxt.getText(),telefonotxt.getText(),correotxt.getText(),puestoCarneParentesco.getText()));
                                        //};
                                        nombreMascota.setText("");
                                        tipoMascota.setText("");
                                        raza.setText("");
                                        estado.setText("");
                                        telefonoPersona.setText("");
                                        correoPersona.setText("");
                                        lugarEncuentro.setText("");
                                        chipIdentificacion.setText("");
                                        fechaEncuentro.setText("");
                                        montoRecompensa.setText("");
                                        colorMascota.setText("");
                                        setVisible(false);
                                        JOptionPane.showMessageDialog(null, "Se agregó la persona con éxito");
                                }
                                else
                                {
                                        JOptionPane.showMessageDialog(null, "Debe llenar todos los campos del formulario");
                                }
                        }
                });
                aceptar.setBounds(266, 180, 90, 25);
        		getContentPane().add(aceptar);
        		
        		// Boton que sale de la ventana
        		JButton cancelar = new JButton("Cancelar");
        		cancelar.addActionListener(new ActionListener() {
        			public void actionPerformed(ActionEvent e)
        			{
        				nombreMascota.setText("");
                        tipoMascota.setText("");
                        raza.setText("");
                        estado.setText("");
                        telefonoPersona.setText("");
                        correoPersona.setText("");
                        lugarEncuentro.setText("");
                        chipIdentificacion.setText("");
                        fechaEncuentro.setText("");
                        montoRecompensa.setText("");
                        colorMascota.setText("");
        				setVisible(false);
        			}
        		});
        		cancelar.setBounds(380, 180, 90, 25);
        		getContentPane().add(cancelar);
        	}
        // M�todo para cambiar el combobox y poner puesto, parentesco o carn� dependiendo de lo escogido
        private void cambiarcombobox () { 
                if (comboBox.getSelectedIndex() == 0) {
                        panel.setVisible(true);
                        panel_1.setVisible(false);
                        panel_2.setVisible(false);
                }
                if (comboBox.getSelectedIndex() == 1) {
                        panel.setVisible(false);
                        panel_1.setVisible(true);
                        panel_2.setVisible(false);
                }
                if (comboBox.getSelectedIndex() == 2) {
                        panel_3.setVisible(true);
                        panel.setVisible(false);
                        panel_1.setVisible(false);
                        panel_2.setVisible(true);
                        
                }
                }
        
}

